﻿using System.Collections.Generic;
using System;
using System.Linq;
using System.Text;

namespace LiveatEdu.model
{
   public class Group
   {
       #region parametros da classe
        public string Name {get; set;} //Nome do Grupo
        public string Alias { get; set; } // abreviação 
        public string CustomAttribute1 { get; set; }// codigo da organização
        public string PrimaySmtpAddress { get; set; }// endereço de email
        public string DistinguishedName { get; set; }
        public string ManagedBy { get; set; }// Gerente de cada Grupo
        public string Notes { get; set; }// notas do grupo, texto de descrição
        public string Department { get; set; }
       #endregion

        #region métodos construtores
        public Group(){}

        public Group(List<string> groupParameter)
        {
           
            this.Department = groupParameter.ElementAt(0);
            this.Alias = groupParameter.ElementAt(5);//
            this.CustomAttribute1 = groupParameter.ElementAt(1);//
            this.ManagedBy = groupParameter.ElementAt(7);//
            this.Name = groupParameter.ElementAt(2);
            this.Notes = makeNotes(this.Name, this.Department, this.ManagedBy);
            this.DistinguishedName = makeDistinguishedName(this.Department);
            this.PrimaySmtpAddress = makeMail(Name, Department);
        }
        #endregion


        public string makeDistinguishedName(string departament)
        {
            string distinguishedName;
            switch (departament)
            {
                case "" + "Administração de Empresas" + "":
                    distinguishedName = "CN=" + this.Name + "OU=ATIVOS,OU=ADMINISTRACAO,OU=CURSOS,OU=FACET,DC=facet,DC=edu,DC=br";
                    break;

                case "" + "Ciências Contábeis" + "":
                    distinguishedName = "CN=" + this.Name + "OU=ATIVOS,OU=CONTABIL,OU=CURSOS,OU=FACET,DC=facet,DC=edu,DC=br";
                    break;

                case "" + "Sistemas de Informação" + "":
                    distinguishedName = "CN=" + this.Name + "OU=ATIVOS,OU=SI,OU=CURSOS,OU=FACET,DC=facet,DC=edu,DC=br";
                    break;

                case "" + "pós graduação" + "":
                    distinguishedName = "CN=" + this.Name + "OU=ATIVOS,OU=POS,OU=CURSOS,OU=FACET,DC=facet,DC=edu,DC=br";
                    break;
                default:
                    distinguishedName = null;
                    break;
            }
            return distinguishedName;


        }

        public string makeMail(string samAccountName, string departament)
        {
            string mail;
            switch (departament)
            {
                case "" + "Administração de Empresas" + "":
                    mail = samAccountName + "@adm.facet.edu.br";
                    break;

                case "" + "Ciências Contábeis" + "":
                    mail = samAccountName + "@cont.facet.edu.br";
                    break;

                case "" + "Sistemas de Informação" + "":
                    mail = samAccountName + "@bsi.facet.edu.br";
                    break;

                case "" + "pós graduação" + "":
                    mail = samAccountName + "@pos.facet.edu.br";
                    break;

                default:
                    mail = null;
                    break;
            }
            return mail;
        }

        public string makeNotes(string name, string lession, string teacher)
        {
            string note;
            note = "Grupo da disciplina de" + name + " do curso de " +lession + " ministrada pelo professor " + teacher;
            return note;
        }
    
   }


}
